package siestageek;

public class J09_While {

	// 반복문 loop
	// 가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
	// 코드를 복사해서 반복을 해도 해결되지 않는 문제발생
	// 반복횟수가 5번이면 코드 줄수도 5줄 작성
	// 코드내 내용이 수정되면 그 사본도 수정
	
	// 이것에 대한 현명한 방법은
	// 반복문 안에 코드를 넣는 것
	// 즉, 반복할 코드 한 줄만 작성하고
	// 컴파일러에게 이 코드를 몇번이고
	// 반복 실행하라고 지시할 수 있음
	
	// 반복문의 종류
	// while, do-while, for
	
	// while
	// while( 조건식 ) {
	//		문장;
	// }
	// 조건식의 결과가 참이면
	// 블록 안의 문장이 실행되고
	// 다시, 조건식을 검사
	
	// 따라서, 반복 실행을 중단하려면
	// 조건식의 결과가 거짓이 되도록 만들거나
	// break 문을 사용하면 됨	
	
	// 반복문의 처리 과정을 단계별로 파악하려면
	// 통합개발환경의 디버깅 기능을 이용하면 됨
	
	// break, continue
	// break문은 while, do-while, for문의 반복실행을
	// 중단하기 위해 사용
	// break문을 아무대나 사용하면 컴파일 오류 발생
	
	// continue문은 while, do-while, for문의
	// 현재 반복을 중단하고 다음 반복의 시작으로
	// 제어를 넘김
	
	public static void main(String[] args) {
		//  반복 처리문을 사용하지 않았을 때		
		System.out.println( "선생님~ 사랑해요~" );	// 1번

		System.out.println( "선생님~ 사랑해요~" );	// 3번
		System.out.println( "선생님~ 사랑해요~" );
		System.out.println( "선생님~ 사랑해요~" );
	
		System.out.println( "선생님~ 사랑해요~" ); //5번
		System.out.println( "선생님~ 사랑해요~" );
		System.out.println( "선생님~ 사랑해요~" );
		System.out.println( "선생님~ 사랑해요~" );
		System.out.println( "선생님~ 사랑해요~" );
		
		// 문제1 : 반복문을 사용하지 않고
		//           '시간은 금이라구, 친구!!' 라는 문장을
		//           5번 반복 출력
		System.out.println( "시간은 금이라구, 친구!!" );
		System.out.println( "시간은 금이라구, 친구!!" );
		System.out.println( "시간은 금이라구, 친구!!" );
		System.out.println( "시간은 금이라구, 친구!!" );
		System.out.println( "시간은 금이라구, 친구!!" );
		
		// 반복문을 이용하면 다음과 같음
		int count = 0;
		while ( count < 5 ) {
			System.out.println( "시간은 금이라구, 친구!!" );
			count = count + 1;
		}
		
		// 문제2 : 반복문을 사용하지 않고
		//           1 ~ 10 까지 출력하는 프로그램
		System.out.println( 1 );
		System.out.println( 2 );
		System.out.println( 3 );
		System.out.println( 4 );
		System.out.println( 5 );
		System.out.println( 6 );
		System.out.println( 7 );
		System.out.println( 8 );
		System.out.println( 9 );
		System.out.println( 10 );
		
		// 반복문을 이용하면 다음과 같음
		count = 1;
		while ( count <= 10 ) {
			System.out.println( count );
			++count;		// count = count +1;
		}
		
		// 문제 3 : 반복문을 이용해서
		// 19단의 19단을 출력해 봄
		// 19 x 1 = 19
		// 19 x 2 = 38
		// ... ...
		// 19 x 19 = 361
		count = 1;
		while ( count <= 19 ) {
			System.out.println( 
					"19 x " + count + " = " + 19 * count );
			++count;
		}
		
		// 문제 4 : 반복문과 break를 이용해서
		// 1 ~ 10 까지 출력하는 프로그램
		count = 1;
		while ( count <= 10 ) {
			System.out.println( count );
			++count;
		}  // break 를 사용하지 않음
		count = 1;
		while ( true ) {
			if ( count > 10  ) break;
			System.out.println( count );
			++count;
		}	// break 를 사용함
		
		// 문제 5: 반복문과 continue를 이용해서
		// 1 ~ 10 까지 출력하는 프로그램
		// 단, 5는 출력하지 않음
		count = 1;
		while ( count <= 10 ) {
			if ( count != 5 ) System.out.println( count );
			++count;
		}  // continue 를 사용하지 않았을 때
		
		count = 1;
		while ( count <= 10 ) {
			if ( count == 5 ) { ++count; continue; } 
			System.out.println( count );
			++count;
		}  // continue 를 사용했을때
		
		// 문제 6 : 1 ~ 100 사이에
		// 짝수만 출력하는 프로그램
		// 
		
		// 문제 7 : 1 ~ 100 사이에
		// 홀수만 출력하는 프로그램
		// 
		
	}

}



